package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {

    @Autowired
    private FileService fileService;

    /**
     * 需求: 实现文件上传
     * 请求路径: "http://localhost:8091/file/upload"
     * 请求参数: file: (binary)
     * 返回值: SysResult(ImageVO)
     * 缓存流 一次性搬运多大的字节效率最高? 1024
     * 注意事项: 关闭流文件
     * MultipartFile: SpringMVC 专门针对文件上传开发的API
     */
    @PostMapping("/upload")
    public SysResult upload(MultipartFile file){
        //文件上传入门案例
        ImageVO imageVO = fileService.upload(file);
        //文件上传失败
        if(imageVO == null){
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }

    /**
     * 需求: 实现文件删除
     * 请求路径: http://localhost:8091/file/deleteFile
     * 请求类型: delete
     * 请求参数: virtualPath
     */
    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath){
        fileService.deleteFile(virtualPath);
        return SysResult.success();
    }
}
